package com.sharer.last.model.dto.comment;

import com.sharer.last.annotation.EnumValue;
import com.sharer.last.base.model.BaseDTO;
import com.sharer.last.enums.CommentTypeEnum;
import com.sharer.last.interfaces.ValidateGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 评论新增/更新入参封装
 *
 * @ClassName CommentChangeDTO
 * @Author WangJin
 * @Date 2023/06/16/10:01
 * @Description
 * @Version 1.0
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class CommentChangeDTO extends BaseDTO {
    @NotNull(message = "id不能为空",groups = ValidateGroup.UpdateGroup.class)
    private Long id;

    /**
     * 评论类型 1普通文章 2关于我页面，3友链页面
     */
    @EnumValue(value = CommentTypeEnum.class,message = "评论类型不存在")
    private Integer commentType;

    /**
     * 父评论id
     */
    @NotNull(message = "父级评论id不能为空",groups = ValidateGroup.InsertGroup.class)
    private Long parentCommentId;

    /**
     * 评论内容
     */
    @NotBlank(message = "评论内容不能为空")
    private String content;

    /**
     * 关联id comment_type=1时，存放blog的id,=2时存放personal_detail的id。。。
     */
    private Long relevantId;

    /**
     * 公开或隐藏
     */
    private Integer isPublished;

    /**
     * 博主回复
     */
    private Integer isAdminComment;

    /**
     * 昵称 TODO 不能为空
     */
    private String nickname;

    /**
     * 邮箱 TODO 不能为空
     */
    private String email;

    /**
     * 头像(图片路径) TODO 不能为空
     */
    private String avatar;

    /**
     * 评论者ip地址 TODO 不能为空
     */
    private String ip;

    /**
     * 接收邮件提醒
     */
    private Integer isNotice;

    /**
     * 如果评论昵称为QQ号，则将昵称和头像置为QQ昵称和QQ头像，并将此字段置为QQ号备份
     */
    private String qq;

    /**
     * 个人网站
     */
    private String website;

}
